[Design pattern]: 设计模式相关系列
介绍
概念: 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
应用场景: 经常增加处理场景的业务,比如处理零食商品的类,不断有新增的零食,就需要不断增加处理零食的方法,耦合度太高.为了降低耦合度使用职责链模式.
好处: 扩展灵活.结构清晰.
CODE
处理器接口定义
1 | package note.com.chain; |
处理器实现类
1 | package note.com.chain; |
1 | package note.com.chain; |
1 | package note.com.chain; |
1 | package note.com.chain; |
1 | package note.com.chain; |
组装职责链并进行测试
1 | package note.com.chain; |
结果
1 | 我这里有一个生物需要处理 |
FirstChain不用生物的名称来定义,是为了演示更清楚的知道我把FirstChain作为责任传递的第一棒.
由 此,所有的待处理都从第一个职责链入口进行处理,不需要知道具体是谁处理了.另外,有新增的物种需要处理时只需要扩张Handler的实现,并且把 该实现收在链中管理即可.
责任链和命令模式容易混淆,下篇讲完命令模式再区分它们的区别.